`:top
`!Java 3D`! est une `F33f`_`[interface de programmation`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Interface_de_programmation]`_`f (`*Application Programming Interface`* ou `*API`*) pour la plateforme `F33f`_`[Java`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Java_(langage)]`_`f visant la `F33f`_`[synthèse d'image 3D`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Synthèse_d'image_3D]`_`f basée sur les `F33f`_`[graphes de scène`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Graphe_de_scène]`_`f. Cette API faisait appel soit aux fonctions de `F33f`_`[OpenGL`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=OpenGL]`_`f ou `F33f`_`[Direct3D`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Direct3D]`_`f jusqu'à la version 1.6.0 qui fait appel aux fonctions de `F33f`_`[JOGL`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=JOGL]`_`f. Depuis sa version 1.2, Java 3D est développé sous l'organisation du `*`F33f`_`[Java Community Process`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Java_Community_Process]`_`f`*. Un `F33f`_`[graphe de scène`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Graphe_de_scène]`_`f Java 3D est un `F33f`_`[graphe orienté acyclique`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Graphe_orienté_acyclique]`_`f.
Java 3D et sa documentation sont disponibles en téléchargement, séparément. Ils ne font pas partie du `F33f`_`[kit de développement Java (JDK)`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Java_Development_Kit]`_`f.
>>Contents
• `F0af`_`[Historique`#historique]`_`f
• `F0af`_`[Caractéristiques`#caract-ristiques]`_`f
• `F0af`_`[Fonctionnalités`#fonctionnalit-s]`_`f
• `F0af`_`[Composants`#composants]`_`f
• `F0af`_`[Produits compétiteurs`#produits-comp-titeurs]`_`f
• `F0af`_`[Notes et références`#notes-et-r-f-rences]`_`f
• `F0af`_`[Voir aussi`#voir-aussi]`_`f
• `F0af`_`[Liens externes`#liens-externes]`_`f
-─
>>Historique
`F33f`_`[Intel`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Intel]`_`f, `F33f`_`[Silicon Graphics`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Silicon_Graphics]`_`f, `F33f`_`[Apple`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Apple]`_`f, et `F33f`_`[Sun`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Sun_Microsystems]`_`f avaient tous des `F33f`_`[interfaces de programmation`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Interface_de_programmation]`_`f basées sur les `F33f`_`[graphes de scène`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Graphe_de_scène]`_`f en cours de développement en 1996. Comme ils voulaient tous en faire une version Java, ils décidèrent de la faire ensemble. Ce projet devint Java 3D. Le développement était déjà en cours en 1997. Une version bêta publique fut publiée en mars 1998. La première version fut publiée en décembre 1998. De la mi-2003 à l'été 2004, le développement de Java 3D fut abandonné. À l'été 2004, Java 3D fut publié en tant que projet communautaire, et `F33f`_`[Sun`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Sun_Microsystems]`_`f et les bénévoles ont depuis poursuivi son développement.
Depuis sa version 1.4 (`F33f`_`[2007`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=2007]`_`f), sa spécification est JSR 926`:cite-ref-1[`F5bf`_`[1`#cite-note-1]`_`f] et la version courante est 1.5.1 (juin 2007).
Le 29 janvier 2008, il a été annoncé que des améliorations à Java 3D seraient mises en attente pour produire un `F33f`_`[graphe de scène`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Graphe_de_scène]`_`f 3D pour `F33f`_`[JavaFX`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=JavaFX]`_`f`:cite-ref-2[`F5bf`_`[2`#cite-note-2]`_`f].
Depuis le 28 février 2008, l'intégralité du `F33f`_`[code source`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Code_source]`_`f Java 3D est publié sous la licence `F33f`_`[GPL version 2`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Licence_publique_générale_GNU]`_`f avec GPL linking exception`:cite-ref-3[`F5bf`_`[3`#cite-note-3]`_`f].
Depuis le 10 février 2012, Java 3D utilise `F33f`_`[JOGL`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Java_OpenGL]`_`f 2.0 pour son rendu accéléré matériellement, le portage a été initié par Julien Gouesse`:cite-ref-4[`F5bf`_`[4`#cite-note-4]`_`f].
>>Caractéristiques
Comparé aux autres solutions pour la synthèse d'image 3D, Java 3D n'est pas seulement un `*`F33f`_`[wrapper`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Adaptateur_(patron_de_conception)]`_`f`* autour de ces `F33f`_`[API`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Interface_de_programmation]`_`f graphiques, mais une interface qui encapsule la programmation graphique en utilisant une véritable approche `F33f`_`[orientée objet`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Programmation_orientée_objet]`_`f.
Une image est composée avec un `F33f`_`[graphe de scène`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Graphe_de_scène]`_`f, qui est une représentation `F33f`_`[vectorielle`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Vecteur]`_`f des images 3D à être affichées. Ce graphe de scène est structuré en `F33f`_`[arbre`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Arbre_(informatique)]`_`f, qui contient les informations nécessaires à l'affichage. On peut s'imaginer un graphe de scène comme un arbre inversé ayant comme racine un nœud (`*node`*) nommé `B100`F9d9Locale`f`b qui est relié par une seule série de liens à tout autre nœud de l'arborescence `:cite-ref-5[`F5bf`_`[5`#cite-note-5]`_`f].
Il est possible de créer des graphes de scènes illégaux. Cela a lieu lorsque le graphe ne respecte pas les conditions d'un `F33f`_`[graphe acyclique orienté`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Graphe_acyclique_orienté]`_`f`:cite-ref-6[`F5bf`_`[6`#cite-note-6]`_`f]. Ces graphes peuvent être `F33f`_`[compilés`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Compilateur]`_`f, mais provoquent une exception lors d'un `F33f`_`[rendu`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Rendu]`_`f.
>>Fonctionnalités
• Structure de `F33f`_`[graphe de scène`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Graphe_de_scène]`_`f multithread
• `F33f`_`[Multiplate-forme`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Multiplate-forme]`_`f
• API générique `F33f`_`[temps réel`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=3D_temps_réel]`_`f, utilisable à la fois pour la visualisation et les jeux
• Support des différents modes de rendu (immédiat, différé…)
• Inclut le rendu accéléré matériellement via `F33f`_`[JOGL`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Java_OpenGL]`_`f, `F33f`_`[OpenGL`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=OpenGL]`_`f et `F33f`_`[Direct3D`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Direct3D]`_`f (en fonction de la plateforme, uniquement `F33f`_`[JOGL`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Java_OpenGL]`_`f 2.0 pour Java 3D 1.6)
• Modèle de vue sophistiqué basée sur la `F33f`_`[réalité virtuelle`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Réalité_virtuelle]`_`f et prenant en charge le rendu stéréoscopique et les configurations complexes d'affichages multiples
• Support natif du visiocasque
• CAVE (projecteurs sur plusieurs écrans)
• Son spatial 3D
• Shaders programmables, supportant à la fois `F33f`_`[GLSL`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=GLSL]`_`f et `F33f`_`[Cg`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Cg_(langage)]`_`f
• `*Stencil buffer`*
• Importeurs pour la plupart des formats courants, comme 3DS, `F33f`_`[OBJ`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Objet_3D_(format_de_fichier)]`_`f, `F33f`_`[VRML`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=VRML]`_`f, `F33f`_`[X3D`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=X3D]`_`f, `F33f`_`[NWN`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=NWN]`_`f, and FLT
>>>Composants
Les packages inclus dans Java 3D sont `B100`F9d9javax.media.j3d`f`b et `B100`F9d9javax.vecmath`f`b `:cite-ref-7[`F5bf`_`[7`#cite-note-7]`_`f]. Les sous-projets du projet Java 3D sont `B100`F9d9j3d-contrib-utils`f`b, `B100`F9d9j3d-core`f`b, `B100`F9d9j3d-core-utils`f`b, `B100`F9d9j3d-examples`f`b, `B100`F9d9j3d-incubator`f`b, `B100`F9d9j3d-optional-utils`f`b, `B100`F9d9j3d-vrml97`f`b, `B100`F9d9j3d-webstart`f`b, `B100`F9d9j3dfly`f`b, `B100`F9d9skinandbones`f`b, `B100`F9d9vecmath`f`b et `B100`F9d9vecmath-test`f`b `:cite-ref-site-officiel-sp-8-0[`F5bf`_`[8`#cite-note-site-officiel-sp-8]`_`f].
>>Produits compétiteurs
Pour le langage Java uniquement :
`!Usage général :`!
• AgentFX
• 3DzzD
• Strata Live 3D(tm) `:cite-ref-9[`F5bf`_`[9`#cite-note-9]`_`f]
`!Jeux :`!
• Ardor3D
• Xith3D
• `F33f`_`[jMonkey Engine`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=JMonkey_Engine]`_`f
• Espresso3D
`!Visualisation :`!
• Aviatrix3D
• JView
• Jreality`:cite-ref-10[`F5bf`_`[10`#cite-note-10]`_`f].
>>Notes et références
`:cite-note-1`!1.`! `F0af`_`[↑`#cite-ref-1]`_`f (en) « JSRs: Java Specification Requests - JSR 926: Java 3D » (consulté le 18 juin 2008)
`:cite-note-2`!2.`! `F0af`_`[↑`#cite-ref-2]`_`f `:2008`a(en) « ANNOUNCEMENT: Java 3D plans », `F33f`_`[Sun Microsystems`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Sun_Microsystems]`_`f, 29 janvier 2008
`:cite-note-3`!3.`! `F0af`_`[↑`#cite-ref-3]`_`f `:2008`a(en) « ANNOUNCE: GPL open source release », `F33f`_`[Sun Microsystems`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Sun_Microsystems]`_`f, 28 février 2008 (consulté le 29 février 2008)
`:cite-note-4`!4.`! `F0af`_`[↑`#cite-ref-4]`_`f `:2012`a(en) « Java3D now works with JOGL 2.0 », Julien Gouesse, 2 octobre 2012 (consulté le 2 octobre 2012)
`:cite-note-5`!5.`! `F0af`_`[↑`#cite-ref-5]`_`f « Le tutorial de l'API Java 3D, page 1-3 » (consulté le 18 juin 2008)
`:cite-note-6`!6.`! `F0af`_`[↑`#cite-ref-6]`_`f « Le tutorial de l'API Java 3D, page 1-5 » (consulté le 18 juin 2008)
`:cite-note-7`!7.`! `F0af`_`[↑`#cite-ref-7]`_`f (en) « Packages » (consulté le 18 juin 2008)
`:cite-note-site-officiel-sp-8`!8.`! `F0af`_`[↑`#cite-ref-site-officiel-sp-8-0]`_`f « Sous-projets sur le site officiel »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?) (consulté le 11 avril 2013)
`:cite-note-9`!9.`! `F0af`_`[↑`#cite-ref-9]`_`f S T R A T A - The Power of 3D
`:cite-note-10`!10.`! `F0af`_`[↑`#cite-ref-10]`_`f jReality | Home
>>Voir aussi
• `F33f`_`[Liste de bibliothèques 3D`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Liste_de_bibliothèques_3D]`_`f
>>>Liens externes
• (en) « Site officiel »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?) (consulté le 11 avril 2013)
• (fr) Tutoriels sur le développement avec Java 3D
• (fr) Installation de Java 3D 1.6.0
• (en) Forum officiel de Java 3D 1.6
• (en) Pré-versions de Java 3D 1.6
• Portail de la programmation informatique
`c`F0af`_`[↑ Back to top`#top]`_`f`a